/**
  @file     	DESIGNPATTERN_ConcretePrototype.h 
  @brief    	1. Copy a large object, the performance increase is quite obvious
				2. Copy objects, simple interface, like copy and paste.
				3. You can create a data object, rather than an empty object
  @author  	arvin
  @version 	1.0   2013/01/29
 */

#ifndef CXX_DESIGNPATTERN_CONCRETEPROTOTYPE_H
#define CXX_DESIGNPATTERN_CONCRETEPROTOTYPE_H

#ifndef CXX_DESIGNPATTERN_PROTOTYPE_H
#include "DESIGNPATTERN_Prototype.h"
#endif


class ConcretePrototype : public Prototype
{
public:
	/**
	* Construction
	*
	* @param VOID
	* @return 
	*/
	ConcretePrototype();

	/**
	* Destruction
	*
	* @param VOID
	* @return 
	*/
	virtual ~ConcretePrototype();

	/**
	* Create Computer
	*
	* @param VOID
	* @return Prototype*
	* @note
	*/
	virtual Prototype* Clone() const;

protected:

private:
	/**
	* Copy Construction
	*
	* @param const ConcretePrototype& cPrototype
	* @return 
	*/
	ConcretePrototype(const ConcretePrototype& cPrototype);

	/**
	* Assignment
	*
	* @param const ConcretePrototype& cPrototype
	* @return ConcretePrototype&
	*/
	ConcretePrototype& operator=(const ConcretePrototype& cPrototype);

public:
protected:
private:
};
#endif	/* >>CXX_DESIGNPATTERN_CONCRETEPROTOTYPE_H<< */
/* EOF */